// pages/receipt/upload.js
const app = getApp()
const api = require('../../utils/api')
const util = require('../../utils/util')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    receiptTypes: ['增值税发票', '普通发票', '火车票', '飞机票', '出租车票', '其他'],
    typeIndex: 0,
    description: '',
    images: [],
    loading: false,
    submitLoading: false,
    uploadSuccess: false,
    verifyId: '',
    submitTime: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 设置导航栏标题
    wx.setNavigationBarTitle({
      title: '报销凭证鉴别'
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 选择凭证类型
  bindTypeChange: function (e) {
    this.setData({
      typeIndex: e.detail.value
    })
  },
  
  // 输入说明
  inputDescription: function (e) {
    this.setData({
      description: e.detail.value
    })
  },
  
  // 选择图片
  chooseImage: function() {
    const { images } = this.data
    const count = 5 - images.length
    
    if (count <= 0) {
      util.showToast('最多上传5张图片')
      return
    }
    
    wx.chooseImage({
      count,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        // 由于是静态原型，我们不需要检查文件类型，直接添加图片
        this.setData({
          images: [...images, ...res.tempFilePaths]
        })
      }
    })
  },
  
  // 预览图片
  previewImage: function(e) {
    const { index } = e.currentTarget.dataset
    const { images } = this.data
    
    wx.previewImage({
      urls: images,
      current: images[index]
    })
  },
  
  // 删除图片
  deleteImage: function(e) {
    const { index } = e.currentTarget.dataset
    const { images } = this.data
    
    images.splice(index, 1)
    this.setData({ images })
  },
  
  // 上传图片 - 在静态原型中，我们直接返回本地路径
  uploadImages: function(imagePaths) {
    return Promise.resolve(imagePaths)
  },
  
  // 提交鉴别
  submitVerify: function() {
    const { receiptTypes, typeIndex, description, images } = this.data
    
    if (images.length === 0) {
      util.showToast('请上传至少一张凭证图片')
      return
    }
    
    this.setData({ submitLoading: true })
    
    // 模拟上传过程
    setTimeout(() => {
      this.setData({ 
        submitLoading: false,
        uploadSuccess: true,
        verifyId: 'V' + new Date().getTime().toString().substr(-6),
        submitTime: util.formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss')
      })
    }, 1500)
  },
  
  // 查看鉴别报告列表
  goToReportList: function() {
    wx.navigateTo({
      url: '/pages/receipt/report'
    })
  },
  
  // 继续上传
  uploadAnother: function() {
    this.setData({
      typeIndex: 0,
      description: '',
      images: [],
      uploadSuccess: false
    })
  }
})